In Global Navigation Satellite Systems (GNSS) such as for instance the Global Positioning System (GPS) or the upcoming European Galileo system, a receiver uses triangulation based on the distance to at least three satellites and plausibility considerations to determine its position. For the triangulation, at first the position of the satellites has to be known to the receiver. This information is stored in each receiver. Furthermore, the distance to a satellite has to be determined from the propagation delay of a signal that is emitted by said satellite and subsequently received at said receiver. In the Global Positioning System (GPS), this is achieved by correlation of a spread data symbol stream that has been transmitted by a satellite and received by a receiver with a replica of the code with which the spread data symbol stream has been spread. In the GPS, said data symbol stream corresponds to a navigation message, which has a bit rate of 50 bps, and the code is a Coarse/Acquisition (C/A) code, which is a Gold code appearing like a pseudo-random-noise (PRN) code with a chip rate of 1.023 MHz and a length of 1023 chips, wherein a chip is an element of the set {0,1} similar to a bit, but is not representing actual data. The duration of a chip is denoted as Tc.
Basically, the spreading operation is performed by modulo-2 addition of the high-chip-rate C/A code and the low bit rate navigation message, so that each bit of the navigation message is modulo-2 added with 20 repetitions of the C/A code of length 1023 chips or duration T=1 ms each.
The GPS navigation message, or, more general, a data stream composed of several data symbols, thus is spread with a code, obtaining a spread data symbol stream, wherein the term spreading refers to the spreading of the frequency bandwidth of the data symbol stream that is increased by a factor that equals the ratio of code chip rate and data symbol rate, which, in the above-mentioned GPS example, equals 20460.
In FIG. 1, said spread data symbol stream 100 is depicted as being composed of two portions 100-1 and 100-2, each corresponding to the duration T of the code. The spread data symbol stream 100 is depicted in discrete-time form, wherein Binary Phase Shift Keying (BPSK) is exemplarily assumed as the modulation technique, so that the symbol alphabet of the spread data symbols is {−1,1}. The spread data symbol stream is transmitted by a satellite and received as received spread data symbol stream 101 at a receiver. The step of modulating and demodulating the spread data streams is omitted here for ease of presentation. The received spread data symbol stream 101, also in discrete-time form, basically equals the transmitted spread data symbol stream, apart from a propagation delay τ1. For the scenario of FIG. 1, it was assumed that the Signal-to-Noise Ratio (SNR) at the receiver is large enough and that channel distortions of the propagation channel such as attenuation, phase shift, Doppler shift and multi-path propagation have been compensated, for instance by means of amplification and equalization, so that the chips in both portions 101-1 and 101-2 of the received spread data symbol stream equal the respective chips in the respective portions 100-1 and 100-2 of the transmitted spread data symbol stream 100, apart from the propagation delay τ1.
At the receiver, the time instance at which the transmitter is starting the transmission of said transmitted spread data symbol stream 100 is known, and at the same time instance, the receiver generates a replica 102 of the code that is used to spread the data symbol stream in the transmitter. This requires the clocks in both the transmitter and receiver to be synchronized. Synchronization of the receiver clock is accomplished by processing the receive signals of at least four satellites, wherein the satellites use high-precision atomic clocks to fix a so-called universal time.
The receiver then computes the Cross-Correlation Function (CCF) 103 between the received spread data symbol stream 101 and the locally generated code replica 102. The CCF for two discrete-time functions f(n·Tc) and g(n·Tc) is defined as
                    φ        fg            ⁡              (                  m          ·                      T            c                          )              =                  1        L            ·                        ∑                      n            =            0                                L            -            1                          ⁢                              f            ⁡                          (                              n                ·                                  T                  c                                            )                                ·                      g            ⁡                          (                                                (                                      n                    +                    m                                    )                                ·                                  T                  c                                            )                                            ,wherein L denotes the length of the summation interval.
For the scenario of FIG. 1, the Auto-Correlation Function (ACF) φcc(m·Tc) of the discrete-time code c(n·Tc) 102 is defined as:φcc(m·Tc)=1 if m=0;|φcc(m·Tc)|≦Δ with 0≦Δ<<1 if m≠0i.e., it has an auto-correlation peak at m=0 and small values elsewhere.
With the received spread data symbol stream 101 in FIG. 1 consisting of two portions 101-1 and 101-2 that are shifted versions of the respective portions 100-1 and 100-2 of the transmitted spread data symbol stream, which in turn represent the spreading of a data symbol with the code of length T, respectively, wherein the respective data symbols of both portions 100-1 and 100-2 are assumed to be equal, the CCF 103 simply contains two times the ACFs φcc(m·Tc) of the code c(n·Tc), weighted with the respective data symbol, wherein said first weighted ACF 103a-1 φcc(m·Tc) of the code is shifted by the delay τ1 of the received spread data symbol stream 101 and the second weighted ACF 103a-2 is shifted by τ1+T. If further portions 100-3, 100-4 etc. followed the two depicted portions of the transmitted spread data symbol stream 100 (and corresponding portions 101-3, 101-4, etc. in the received spread data symbol stream), the CCF would show further weighted ACFs, each separated from the preceding ACF by a duration of T. The CCF thus is periodic in T.
Apparently, from the CCF, the propagation delay τ1, which is indicative of the distance between the transmitter and the receiver, can be determined from the position of the auto-correlation peak 103a-1.
The scenario as described in FIG. 1 assumed that the SNR at the receiver was high enough so that the received spread data symbol stream 101 equals a shifted version of the transmitted spread data symbol stream 100. However, at operating points where GNSS receivers are normally deployed, the SNR may be smaller, so that the received spread data symbol stream 101 does no longer equal the delayed transmitted spread data symbol stream 100, for instance some of the chips within the received spread data symbol stream 101 may be changed by an additive noise process in a way that they more resemble a different BPSK symbol. Furthermore, the received spread data symbol stream may become complex-valued due to the fact that both the amplitude and phase of its chips are altered by noise and channel distortion. Due to the random characteristics of the propagation channel and the noise process that adds to the received signal at the receiver, the errors in the spread data symbol stream 101 are different in different portions 101-1 and 101-2 of the received spread data symbol streams. The CCF 103 then no longer consists of the periodically repeated weighted ACF of the code, but may contain further small peaks at time instances different from the actual auto-correlation peaks at τ1+i·T, where is an integer with i=0, 1, . . . . Furthermore, the amplitude of said auto-correlation peaks may be smaller.
To combat this effect, which aggravates the proper detection of the propagation delay τ1, combining at least two corresponding portions 103-1 and 103-2 of the CCF 103 can be performed. It is the aim of the combining procedure to reduce the effect of the random distortions in the ACFs of the codes within the CCF 103 and to obtain a combined CCF that allows for a more precise and robust determination of the propagation delay τ1. For instance, the portion 103-1 of the CCF 103 from time instance τ=0 to time instance τ=T and the portion 103-2 of the CCF 103 from time instance τ=T to time instance τ=2T may be combined by integration or averaging. When integration (or summing) is used, the values of corresponding time instances of the different CCF portions 103-1, 103-2 are integrated to obtain an integrated value for each of said time instances, which then represent an integrated CCF portion. Due to the periodic character of the ACF peaks 103a-1 and 103a-2, i.e. the fact that the ACF peaks are always located at the same time instance within a portion 103-1, 103-2 of the CCF 103, the ACF peaks then are steadily enhanced during the integration, whereas the distortions, due to their random occurrence at different time instances, are not enhanced to the same degree as the ACFs. Consequently, the combined CCF portion has an increased sensitivity than the single CCF portions 103-1, 103-2 and the desired propagation delay τ1 is more securely detected from the position of the enhanced ACF peak in the combined CCF portion.
As already mentioned, the distances to at least three satellites are required in a GNSS system to accomplish triangulation. To this end, the transmitted spread data symbol streams of at least three satellites are received, as depicted in FIG. 2.
FIG. 2 depicts the reception of first, second and third received spread data symbol streams 200, 201 and 202, which are delayed with respective propagation delays τ1, τ2 and τ3. Each received spread data symbol stream 200, 201 and 202 has been generated from respective first, second and third data symbol streams by spreading with a respective first, second and third code, transmitted by a respective satellite and delayed by a respective propagation delay τ1, τ2 and τ3 due to the different distances between the transmitting satellites and the receiver. In contrast to the illustration in FIG. 2, the receiver does not separately receive said spread data symbol streams 200, 201 and 202, but only receives a signal that is a superposition of said three spread data symbol streams 200, 201 and 202.
The receiver then correlates the received signal with replicas of codes that are used by each transmitting satellite, respectively. In FIG. 2, exemplarily the generation of a replica 203 of the first code that is used by the satellite that transmitted the first spread data symbol stream and the correlation of this first code replica with the received signal is depicted. The resulting cross-correlation function 204 now does not only contain the periodically repeated weighted ACFs 204a-1 and 204a-2 of the first code, but also periodically repeated CCFs 204b-1 and 204b-2 between the first and second code and periodically repeated CCFs 204c-1 and 204c-2 between the first and third code, each weighted with the respective data symbols of the second data symbol stream and the third data symbol stream. The CCF 204 between the receive signal that comprises the first, second and third received spread data symbol streams and the replica 203 of the first code thus still is periodic in T, wherein T is the length of the first, second and third code, but the detection of the desired delay τ1 is aggravated in particular if the amplitudes of the CCFs 204b and 204c within the CCF 204 approach the amplitudes of the ACFs 204a. Note that, whereas random distortions in the received spread data symbol streams that stem from noise may be reduced by averaging over several portions 204-1, 204-2 of the CCF 204 as explained above, the influence of the CCFs 204b and 204c are of systematic character and can not be averaged out of the CCF 204.
When designing the GNSS, it is thus advantageous to select codes for the different satellites that have high auto-correlation peaks and low cross-correlation peaks, so that the delays τ can be securely detected.
The above-mentioned properties of the codes can be approached by increasing the length of the codes. However, increasing the length of the codes generally slows down the acquisition time and vastly increases the computational complexity of the receiver and thus its costs.
A different approach to reduce the cross-correlation uses scrambling codes that comprise significantly more chips than the spreading codes in addition to the scrambling codes. However, as it is the case with increased lengths of the spreading codes, the computational complexity of the receiver increases when scrambling is used.